package cn.csc.module.product.dal.dataobject.sku;

import cn.csc.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;
import java.math.BigInteger;

/**
 * sku信息 DO
 * Stock keeping unit(库存量单位)
 * SKU即库存进出计量的单位， 可以是以件、盒、托盘等为单位。
 * SKU是物理上不可分割的最小存货单元。在使用时要根据不同业态，不同管理模式来处理。在服装、鞋类商品中使用最多最普遍。
 * @author liuchuang
 */
@TableName("sku")
@KeySequence("sku_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SkuDO extends BaseDO {

    /**
     * sku信息Id
     */
    @TableId
    private BigInteger id;
    /**
     * SPU id
     */
    private BigInteger spuId;
    /**
     * sku名称
     */
    private String skuName;
    /**
     * 多个销售属性值id逗号分隔
     */
    private String attrs;
    /**
     * sku图片
     */
    private String imgUrl;
    /**
     * 售价，整数方式保存
     */
    private BigDecimal priceFee;
    /**
     * 市场价，整数方式保存
     */
    private BigDecimal marketPriceFee;
    /**
     * 企业购售价
     */
    private BigDecimal shopPriceFee;
    /**
     * 企业购市场价
     */
    private BigDecimal shopMarketPriceFee;
    /**
     * 库存
     */
    private Integer actualStock;
    /**
     * 商品编码
     */
    private String partyCode;
    /**
     * 商品条形码
     */
    private String modelId;
    /**
     * 商品重量
     */
    private BigDecimal weight;
    /**
     * 商品体积
     */
    private BigDecimal volume;
    /**
     * 状态 1:enable, 0:disable, -1:deleted
     */
    private Integer status;

}
